home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / v9n16.arc / SYSLOCK.SCR < prev   
Text File  |  1990-08-24  |  2KB  |  88 lines

  1. N    SYSLOCK.COM
  2. A    100
  3. JMP  013D           ;Jump to MAIN
  4. DW   0
  5. DW   0
  6. STI                 ;**BEGIN** Interrupt Service Routine
  7. PUSH AX
  8. PUSH DS
  9. IN   AL,60          ;read key from keyboard port
  10. CMP  AL,00
  11. JZ   0113
  12. CMP  AL,53          ;If it's not DEL, jump to OK
  13. JNZ  0136
  14. MOV  AX,0000
  15. MOV  DS,AX
  16. MOV  AL,[0417]
  17. TEST AL,04          ;If Ctrl isn't pressed, jump to OK
  18. JZ   0136
  19. TEST AL,08          ;If Alt isn't pressed, jump to OK
  20. JZ   0136
  21. IN   AL,61          ;Reset the keyboard, throw away the keystroke
  22. MOV  AH,AL
  23. OR   AL,80
  24. OUT  61,AL
  25. MOV  AL,AH
  26. OUT  61,AL
  27. MOV  AL,20
  28. OUT  20,AL
  29. POP  DS
  30. POP  AX
  31. IRET
  32. POP  DS             ;:OK -- let the normal INT 9 process the key
  33. POP  AX
  34. CS:
  35. JMP  FAR [0102]     ;**END** Interrupt Service Routine
  36. MOV  AX,3509        ;:MAIN
  37. INT  21
  38. MOV  [0102],BX      ;Save the original interrupt vector
  39. MOV  [0104],ES
  40. MOV  DX,0106
  41. MOV  AX,2509
  42. INT  21             ;Install the Interrupt Service Routine
  43. MOV  AX,CS
  44. MOV  ES,AX
  45. JMP  01AB           ;Jump to MAINLOOP
  46. NOP
  47. DB   D,A,"Please enter the system password : ",24
  48. DB   D,A,"Password accepted.",24
  49. DB   "xxxx      "
  50. DB   "          ",0,0,0
  51. MOV  AH,09          ;:MAINLOOP
  52. MOV  DX,0159
  53. INT  21             ;Print the prompt
  54. MOV  CX,000A
  55. MOV  AH,07
  56. MOV  DI,019E
  57. INT  21             ;:INPUTLOOP
  58. CMP  AL,0D          ;If it's the ENTER key..
  59. JZ   01C5           ;.. jump to CHECK
  60. STOSB
  61. LOOP 01BA           ;Jump back to INPUTLOOP
  62. JMP  01B2
  63. MOV  CX,000A        ;:CHECK
  64. MOV  SI,0194        ;Compare the actual password..
  65. MOV  DI,019E        ;.. with what was entered
  66. REPZ
  67. CMPSB
  68. JZ   01DF           ;If it matches, jump to FINISH
  69. MOV  AL,20          ;Otherwise, blank the input area..
  70. MOV  CX,000A
  71. MOV  DI,019E
  72. STOSB
  73. LOOP 01DA
  74. JMP  01AB           ;.. and jump back to MAINLOOP
  75. MOV  AH,09          ;:FINISH
  76. MOV  DX,017F
  77. INT  21             ;Print the "accepted" message
  78. MOV  DX,[0102]
  79. MOV  DS,[0104]
  80. MOV  AX,2509
  81. INT  21             ;Restore the old INT 9
  82. INT  20             ;All done
  83.  
  84. RCX
  85. F5
  86. W
  87. Q
  88.